package blog.mapper;

import blog.entity.CateGory;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CategoryMapper {
    /**
     * 根据文章Id查询所属的大分类，小分类
     * @param articleId 文章Id
     * @return 分类列表
     */
    List<CateGory> listCateGoryRefByArticleId(Integer articleId);

    /**
     * 查询所有的分类信息
     * @return 分类列表
     */
    List<CateGory> findAll();

    /**
     * 查询分类下的子分类
     * @param cateGoryId 分类Id
     * @return 子分类列表
     */
    List<CateGory> getSubCateGoryListById(Integer cateGoryId);
    /**
     * 添加一个分类
     * @param cateGory 分类实体
     */
    void insertCateGory(CateGory cateGory);

    /**
     * 删除一个分类
     * @param cateGoryId 分类Id
     */
    void deleteGoryById(String cateGoryId);

    /**
     * 根据分类名查询分类信息
     * @param cateGoryName 分类名
     * @return 分类信息
     */
    CateGory selectGoryByName(String cateGoryName);
    /**
     * 查询所有的一级分类信息
     * @return 一级分类列表
     */
    List<CateGory> getAllParentCateGory(Integer pid);

    /**
     * 添加文章与分类之间的关系
     * @param cateGoryId 分类Id
     * @param articleId 文章Id
     */
    void addArticleCateGory_ref(@Param("cateGoryId") Integer cateGoryId,@Param("articleId") Integer articleId);

    /**
     * 删除文章-分类表里的文章
     * @param id 文章Id
     */
    void deleteArticleRefCateGory(Integer id);
    /**
     * 获取分类信息
     * @param id 分类Id
     * @return 分类信息
     */
    CateGory getCateGoryById(Integer id);

    /**
     * 修改分类信息
     * @param cateGory
     */
    void updateCateGory(CateGory cateGory);
}
